 | | LÓGICA NO MONÓTONA |
“Mientras mucho razonamiento humano se corresponde con la lógica tradicional, una parte importante del razonamiento de sentido común no parece ser monotónico” (John McCarthy)
“El razonamiento ‘lógico’ no es suficientemente flexible para servir como fundamento del pensamiento” (Marvin Minsky)
Concepto
La lógica clásica se basa en lo siguiente. Supongamos que tenemos una serie de sentencias, de las que se infieren ciertas conclusiones. Si añadimos nuevas sentencias, habrá nuevas conclusiones, pero las conclusiones originales no se alteran, se conservan en el conjunto de conclusiones ampliado. Esta propiedad se denomina “monotonicidad”.
La lógica no monótona (o no monotónica) −en ingles, nonmonotonic logic− es un tipo de lógica orientada a gestionar inferencias dinámicas (o conclusiones provisionales) a la luz de la información (incompleta) disponible en cada momento. Las conclusiones se actualizan (se eliminan, se añaden o se modifican) con la aparición de nuevas informaciones.
Normalmente, al añadir una nueva información se reduce el número de conclusiones. Esto ocurre también cuando se describe una cierta entidad de manera general (por ejemplo, “E es un animal”) y luego se van añadiendo nuevas características (por ejemplo, “E es un mamífero”, “E es volador”, etc.), que van estrechando progresivamente su ámbito.
Lógica monótona vs. Lógica no monótona
Las características diferenciadoras son:
- La lógica clásica es una lógica estática, en el sentido de que las conclusiones iniciales permanecen con la aparición de nuevos hechos, aunque pueden incrementarse las conclusiones. La lógica no monótona es dinámica en el sentido de que las inferencias varían en el tiempo en función de la información disponible en cada momento.
- En la lógica monótona la información es completa y consistente. Los nuevos hechos son consistentes con los anteriores. En lógica no monótona la información es incompleta y la nueva información puede no ser consistente con las anteriores.
- En la lógica monótona, las inferencias solo son sensibles a la información explícita. En lógica no monótona, las inferencias son sensibles a la información explícita y también a su ausencia.
- La lógica monótona es simple. La lógica no monótona es una lógica más compleja porque implica el hacer suposiciones sobre información desconocida e introducir condiciones adicionales en las reglas para que las inferencias vayan en un sentido u otro. Pero los operadores lógicos son los mismos. La complejidad reside en los contenidos.
- La lógica monótona es puramente formal, racional y mecánica. La lógica no monótona es una lógica superior en el sentido de que está basada en el conocimiento y la intuición; es una lógica epistémica.
Retractabilidad vs. no monoticidad
Se llaman “razonamientos revocables”, “rebatibles” o “retractables” (defeasible reasoning) a los razonamientos en los que las conclusiones se obtienen a partir de información incompleta y suposiciones, conclusiones que posteriormente pueden ser revocadas cuando se disponga de más información. El razonamiento revocable es habitual en un gran número de campos como: la investigación científica, el diseño de dispositivos (electrónicos o mecánicos), el diagnóstico de situaciones o problemas, etc.
Retractabilidad y no monoticidad no son sinónimos. Todo razonamiento no monótono es retractable. Pero lo contrario no es cierto: la retractabilidad no implica la no monoticidad porque la retractabilidad puede haber sido causada por cambios en el contexto.
Los problemas de la lógica no monótona
Los problemas que se plantean en los sistemas de lógica no monótona son:
- El problema de la formalización de la lógica no monótona.
- Qué tipos de técnicas hay que aplicar para actualizar la base de conocimientos.
- Cómo controlar la actualización de la base de conocimientos. Pequeñas modificaciones pueden tener consecuencias de largo alcance.
- Cómo resolver posibles inconsistencias. Puede haber partes de la base de conocimientos consistentes, pero inconsistentes a nivel global.
- Cómo derivar las conclusiones relevantes para resolver un problema.
- El problema de la implementación. Un objetivo frecuente es el de construir un sistema de inteligencia artificial con lógica no monótona de forma eficiente, pero los enfoques formales no son fáciles de implementar.
Aplicaciones de la Lógica no Monótona
Inteligencia artificial (IA)
La lógica juega un papel esencial en IA. La lógica clásica ha jugado un papel importante en informática, pero no sirve para la IA. El razonamiento humano normal es no monótono. Por lo tanto, los sistemas de IA deben de ser capaces de razonar de manera no monótona. Sabemos que el mundo real es un mundo dinámico, donde las cosas cambian. Por lo tanto, el conocimiento es no monótono, es decir, cada nuevo conocimiento viene a modificar e incluso invalidar los conocimientos anteriores.
Un sistema de IA debe de tener un comportamiento inteligente: razonar e inferir conclusiones plausibles, planificar, tomar decisiones en diferentes tipos de situaciones, realizar acciones, etc., todo ello en función de la información que posee en cada momento. Para ello, un programa de ordenador capaz de actuar inteligentemente debe tener un modelo y una representación general del mundo. “Un programa de ordenador capaz de actuar inteligentemente en el mundo debe tener una representación general del mundo en términos del cual se interpreten los inputs” [McCarthy & Hayes, 1969].
Razonamiento de sentido común
El razonamiento no monótono está estrechamente relacionado con el tema de la formalización del razonamiento de sentido común, un tema clave en IA. El razonamiento de sentido común es el razonamiento humano de tipo cualitativo aceptado por una comunidad.
John McCarthy fue el primero en destacar la necesidad e importancia de formalizar el sentido común antes de que existiera una teoría al respecto. Este campo de la IA fue inaugurado en 1958 por McCarthy en su artículo “Programs with common sense” [McCarthy, 1958].
El problema del marco
El problema del marco (frame problem) es un problema planteado por John McCarthy y Patrick Hayes en su artículo 1969 “Some Philosophical Problems from the Standpoint of Artificial Intelligence” [McCarthy & Hayes, 1969]. Se trata de que un agente artificial debe conocer lo que cambia y lo que no cambia como consecuencia de una acción que pueda ejecutar. Las cosas que no cambian como resultado de una acción del agente serán normalmente muy numerosas y es difícil tenerlas todas en la base de datos del sistema por ser, en general, no homogéneas. Según McCarthty, el contexto es una entidad demasiado extensa para poder ser especificado completamente.
El problema del marco implica un razonamiento predictivo, un tipo de razonamiento que es esencial para planificar y formalizar el comportamiento inteligente: a partir de la situación actual, conocer los estados inmediatamente posteriores para cada posible acción a realizar.
Una solución más simple y eficiente es razonar de forma no monótona usando la regla por defecto de que las cosas no cambian excepto cuando se conocen o se especifican explícitamente que se alteran.
Razonamiento por defecto
En el razonamiento por defecto (default reasoning) se suponen propiedades por defecto mientras no se especifique lo contrario, y se infieren conclusiones. También se denomina “razonamiento genérico” porque supone propiedades genéricas o típicas que representan la “normalidad”.
Se basa en dos principios:
- El principio de generalidad. Hay que distinguir entre enunciados universales y genéricos:
- Un enunciado universal es válido para todos los elementos considerados. Por ejemplo, “Todos los hombres son mortales”.
- Un enunciado genérico es válido para todos los elementos típicos o normales considerados, es decir, los que no tienen características especiales. Por ejemplo, “Los pájaros normales vuelan”.
- El principio de especificidad. La información específica tiene prioridad sobre la información genérica en caso de conflicto.
Ejemplo:
Los pájaros normales vuelan, aunque hay pájaros que no vuelan, que son excepciones, como los pingüinos. Si sabemos que P es un pájaro, podemos suponer que vuela porque la mayoría de los pájaros vuelan. Si posteriormente se conoce que P es un pingüino, entonces tenemos que cambiar la suposición anterior y decir que P no vuela.
Razonamiento abductivo
El razonamiento abductivo es un tipo de razonamiento revocable en el que a partir de un hecho se formula la hipótesis más probable, la más simple posible y la que mejor explique el hecho. La hipótesis se introduce como una nueva regla que conecta la hipótesis con el hecho.
Por ejemplo, si la hierba está húmeda, entonces lo más probable es que haya llovido. Esta conclusión se puede retractar si posteriormente se observa que el tejado está seco o si sabe que un aspersor estuvo funcionando.
Los enunciados hipotéticos son esenciales en la formulación de teorías científicas y del método científico, cuyos pioneros fueron Galileo y Francis Bacon. Para Popper, Las hipótesis y las teorías científicas son conjeturas que tienen que ser refutables.
Herencia no monótona
La herencia no monótona es el problema de construir jerarquías cuando existen excepciones [Horty, 1994]. Se aplican dos principios:
- El principio de herencia.
Cuando disponemos de conocimientos organizados por taxonomías, se supone que una clase hereda las propiedades de las clases superiores, mientras no se especifiquen excepciones.
- El principio de especificidad.
La información específica tiene prioridad sobre la información heredada en caso de conflicto. Este principio se aplica cuando hay excepciones al principio de herencia. Puede haber excepciones de orden superior (excepciones de excepciones).
Por ejemplo:
Los mamíferos no vuelan.
Los murciélagos son mamíferos.
Conclusión: Los murciélagos no vuelan.
Excepción: Los murciélagos vuelan.
Nueva conclusión: Los murciélagos vuelan.
Excepción de la excepción: Los murciélagos-bebé no vuelan.
Nuevas conclusiones: Los murciélagos no-bebés vuelan. Los murciélagos-bebé no vuelan.
Formalismos de la Lógica no Monótona
Lógica por defecto (default logic)
En la lógica por defecto [Reiter, 1980] se utilizan implicaciones que suplementan la lógica de predicados de primer orden con reglas que tienen la forma
siendo p lo conocido, q una justificación y r es el consecuente. Su significado es: “Si p es conocido y es consistente con la suposición de q, entonces implica r”. En los casos simples, q y r son iguales.
Se suele utilizar la notación siguiente para los diferentes tipos de inferencia:
- Inferencia fuerte o estricta: A ⇒ B (de A se deduce B).
- Inferencia débil o por defecto o suposición: A → B (A normalmente implica B). Esta inferencia es retractable.
- Inferencia negativa: A ↛ B (A no implica B).
Por ejemplo:
pingüino ⇒ pájaro → vuela
pingüino ↛ no vuela
Se aplica el principio de especificidad: lo específico prevalece sobre lo genérico. Por ejemplo:
A ⇒ B → C prevalece sobre A ⇒ C
A ↛ B prevalece sobre A → B
Circunscripción
Desarrollada por John McCarthy [1980], es una formalización basada en la utilización de sentencias generales que cubran la mayor parte de los casos, para posteriormente ir delimitando (circunscribiendo) mediante otras sentencias para especificar las excepciones o los casos particulares.
La circunscripción se basa en los siguientes principios:
- El principio de generalización. Un enunciado genérico es válido para todos los elementos típicos o normales considerados, es decir, los que no tienen características especiales. No se incluyen sentencias generales negativas. Por ejemplo, “los pingüinos no vuelan”.
- El principio de especificidad: la información específica prevalece sobre la genérica. Sirve para especificar excepciones.
- El principio de minimización. Se trata de minimizar las extensiones de los predicados poco frecuentes (o anormales). La extensión de un predicado es el conjunto de sentencias donde aparece el predicado como verdadero.
Se dan reglas prácticas que circunscriben los predicado anormales para que se apliquen solo en aquellas entidades que se conocen que son anormales, con la información disponible en cada momento.
McCarthy utilizó la circunscripción para intentar formalizar el sentido común y el problema del marco. También la utilizó para formalizar el principio de inercia: las cosas no cambian a menos que se indique lo contrario.
McCarthy formalizó la circunscripción mediante la lógica de segundo orden para minimizar la extensión de los predicados anormales o poco frecuentes. Esta lógica permite que los predicados tengan cuantificadores (o variables) asociados en las sentencias.
Por ejemplo:
Todos los pájaros normales vuelan
Los pájaros no normales no vuelan
Todos los pájaros son normales
Los pingüinos son pájaros
P es un pájaro
Conclusión: P vuela
P no es normal
Nueva conclusión: P no vuela
Conclusiones (incluyendo los hechos): P es un pájaro, P es un pingüino, P no vuela
Suposición del mundo cerrado (Closed World Assumption, CWA)
Este formalismo, debido a Raymond Reiter [1978], consiste en presuponer que toda sentencia verdadera es conocida. Por lo tanto (por modus tollens), lo que no es conocido es falso. Es particularmente útil para razonar sobre bases de datos que se suponen completas.
Ejemplos:
- Un agente de viajes tiene acceso a una base de datos de vuelos y tiene que responder a un cliente sobre si existe un vuelo directo desde una ciudad A a otra ciudad B. La consulta a la base de datos da como respuesta que hay o que no hay vuelos directos.
- Tenemos una base de datos del personal de una empresa, que suponemos completa. Una consulta sobre si un empleado determinado trabaja en la empresa, produce como respuesta “sí” o “no”.
Este formalismo es un proceso puramente formal. Implica una inferencia no monótona, puesto que la adición de nueva información puede producir una respuesta distinta.
En el formalismo de la suposición de mundo abierto (Open World Assumption, OWA), lo no conocido no implica la falsedad.
Lógica autoepistémica
La lógica autoepistémica [Moore, 1985] se basa en la idea de que podemos realizar inferencias desde nuestro conocimiento introspectivo, razonando sobre nuestras propias creencias. Por ejemplo, puedo inferir que no debo un millón de euros a nadie, porque si fuera así lo sabría.
En este tipo de lógica el conocimiento se representa mediante reglas prácticas con implicaciones sobre nuestras creencias.
Programación lógica
En programación lógica, un programa consta de un conjunto de reglas de la forma
r ← p1, …, pn, no-q1, …, no-qm
Por ejemplo,
vuela ← pájaro, no-pingüino
(un pájaro que no sea pingüino vuela)
En programación lógica se utiliza el principio de la “negación por defecto”: si no se especifica explícitamente que un elemento no tiene una propiedad, es que la tiene. En el ejemplo anterior, si un pájaro no se ha especificado que no es un pingüino, entonces se supone que es un pingüino.
El lenguaje de programación lógica Prolog, desarrollado por Colmerauer y su equipo [1973], fue el primer lenguaje en incorporar la lógica no monótona.
Un ejemplo de programa lógico es:
vuela ← pájaro, no-pingüino
no-vuela ← pingüino
pájaro ← pingüino
Supongamos que P es un pájaro. Por defecto, no es un pingüino. Por lo tanto, aplicando la primera regla, P vuela. Las otras dos reglas no son aplicables.
Supongamos que P es un pingüino. La primera regla no es aplicable, pero sí las otras dos. Por lo tanto, P es un pájaro que no vuela.
La Lógica No Monótona en MENTAL
Con MENTAL todo es más simple, claro y directo porque se trabaja directamente con arquetipos primarios, los arquetipos de la conciencia:
- Unificación.
Desde el nivel profundo todo está interrelacionado, todo se contempla como la misma cosa: inteligencia artificial, lógica no monótona, razonamiento de sentido común, lógica modal, bases de datos, representación del conocimiento, programación lógica, programación orientada a eventos, etc. A nivel profundo, todo está unificado.
- Lógica monótona vs. Lógica no monótona.
Se suele afirmar que la lógica no monótona no es una lógica deductiva. Eso no es cierto. La lógica tiene dos aspectos: la lógica de decisión (la basada en el concepto de “condición”) y la lógica de la inferencia o deducción. La lógica no monótona es una lógica que inicialmente no es deductiva (o lo es parcialmente) y que tiene que ser completada por suposiciones o hipótesis para poderla convertir en deductiva. La formalización es la misma. Solo depende de los contenidos utilizados en cada caso.
- Formalismos.
Todos los formalismos de la lógica no monótona se pueden expresar con MENTAL. Si en MENTAL no se pudiera expresar algún formalismo, entonces MENTAL no sería universal.
- Formalización.
La formalización de un sistema de lógica no monótona se realiza mediante expresiones genéricas (la base de conocimientos) y expresiones no genéricas (la base de hechos), ambas bases residiendo en el espacio abstracto.
Las reglas son expresiones genéricas que están permanentemente activadas para inferir conclusiones de manera automática. Los “motores” de las inferencias son las expresiones genéricas tipo “condición → acción”. Puede haber reglas de orden superior (metarreglas). El razonamiento o proceso es siempre hacia adelante (o descendente). Los hechos se consideran también conclusiones. Tanto los hechos como las expresiones genéricas pueden modificarse.
Una posibilidad disponible en MENTAL es aplicar un factor (entre 0 y 1) para indicar el grado de verdad de una expresión. Por ejemplo,
〈( x/pájaro → 0.8*(x/vuela) )〉
que se interpreta también en sentido probabilístico: el 80 % de los pájaros vuelan.
Las expresiones genéricas se aplican continuamente hasta que se llega a una situación estable del espacio abstracto. En realidad, se siguen aplicando siempre, pero no se modifica nada. También puede ocurrir que la situación del espacio abstracto permanezca dinámico, pudiendo tener o no un patrón de dinamicidad. Esta situación es análoga al tema del resultado de un proceso en una máquina de Turing.
- Ejecución.
No se trata de elaborar sistemas lógicos para luego implementarlos en un ordenador en un determinado lenguaje. Las expresiones de MENTAL son directamente ejecutables. Hay unificación entre formalización e implementación.
La ejecución de un sistema lógico no monótono no difiere esencialmente de un proceso estándar que contenga expresiones genéricas que impliquen dinamicidad (las que utilicen las primitivas de sustitución y condición) actuando sobre las expresiones del espacio abstracto.
- Inteligencia artificial.
McCarthy fue el primero en proponer la lógica como lenguaje para la IA: para formalizar el sentido común y para representar del conocimiento. Pero la IA debe fundamentarse en los arquetipos de la conciencia, no solo en la lógica. Usar solo la lógica en IA es cometer el mismo error que tratar de fundamentar la matemática solo con la lógica (el logicismo), el error cometido por Frege y Russell. Los arquetipos primarios son el fundamento de todo, incluyendo la matemática y la IA.
MENTAL suministra, no la representación del mundo (que pedía McCarthy), sino algo más profundo: la estructura profunda de toda representación, tanto interna como externa.
- El problema del marco.
El problema del marco es un pseudoproblema. Este problema desaparece porque el marco es el espacio abstracto, donde las expresiones pueden cambiar y las conclusiones cambian de forma automática. Un programa de IA no es consciente de lo que hace ni de su entorno. Es responsabilidad del programador controlar las acciones y de sus efectos, tanto a nivel interno (el propio programa) como externo (el espacio abstracto).
Siempre se tiene en cuenta el contexto, el marco, el espacio abstracto con sus contenidos. El contexto y el conocimiento se representan con el mismo lenguaje. En la lógica tradicional no hay una formalización clara del contexto.
- La cuestión verdadero-falso.
Las premisas y las conclusiones se tratan en lógica no monótona en términos de verdadero o falso, como en la lógica deductiva. En MENTAL las expresiones se tratan en términos de existencia o no existencia o con un grado de existencia. Cuando las expresiones hacen referencia al mundo externo, entonces la existencia se puede hacer equivalente a la verdad.
- La sentencia “Todos los pájaros vuelan” es falsa, porque hay pájaros que no vuelan.
- La sentencia “Los pájaros vuelan” no es ni verdadera ni falsa. Es parciamente verdadera y parcialmente falsa, aunque es más verdadera que falsa.
- La sentencia “Los pájaros normales vuelan” es verdadera. Se introduce el predicado “normal” en “Los pájaros vuelan” para convertirla en verdadera y que se pueda aplicar la lógica deductiva.
- Programación lógica.
MENTAL permite especificar todo tipo de expresiones declarativas, no solo de tipo lógico, tanto genéricas como específicas.
Ejemplos
- El ejemplo anterior de circunscripción:
〈( (x/pájaro ∧ x/normal) → x/vuela )〉
(todos los pájaros normales vuelan)
〈( (x/pájaro ∧ x/no-normal) → x/no-vuela )〉
(todos los pájaros no normales no vuelan)
〈( (x/pájaro → x/normal )〉
(todos los pájaros son normales)
〈( x/pingüino → x/pájaro )〉
(un pingüino es un pájaro)
P/pájaro
(P es un pájaro. Conclusión: “P vuela”)
P/no-normal
(Nuevo hecho. Nueva conclusión: “P no vuela”)
Conclusiones (incluyendo los hechos):
P/pájaro P/pingüino P/no-vuela
- Un ejemplo de utilización de meta-reglas.
〈( k=1 → 〈( x/hombre → x/mortal )〉 )〉
Pepe/hombre
k=0
(Pepe/mortal)? // ev. θ
k=1
(Pepe/mortal)? // ev. α
Conclusiones
En definitiva, con MENTAL es muy sencillo especificar un sistema de lógica no monótona desde el punto de vista formal. Una vez más, todo es más claro, directo e intuitivo, gracias a las posibilidades del lenguaje, principalmente las expresiones genéricas, que permiten inferir consecuencias en todo momento y modificar las expresiones del espacio abstracto.
La lógica no monótona no es una nueva lógica. La lógica subyacente no cambia. Es una lógica ampliada con suposiciones o hipótesis y con meta-reglas para describir principios (como el de generalidad, espcificidad y herencia). Una vez ampliada con esos contenidos, la lógica resultante es una lógica deductiva.
Los formalismos no monótonos no resuelven los problemas de razonamiento en IA. La IA debe abordarse desde los grados de libertad (los arquetipos primarios), no solo desde el punto de vista lógico.
Generalización
De acuerdo con el principio de generalización, el concepto de “no monótono” tiene que ser general, es decir, aplicarse no solo a la lógica. En general, un sistema no monótono es aquel en el que cambia el espacio abstracto cada vez que se añaden nuevos hechos (expresiones no genéricas). Una expresión no genérica puede modificar una expresión genérica, como en el siguiente simple ejemplo:
Programa:
(x := 1)
〈( (y = b) ←' x=1 → (y = a) )〉
Situación inicial:
Adición de un nuevo hecho y modificación de uno existente:
Nueva situación:
Adenda
Origen de la lógica no monótona
La lógica no monótona surgió al constatar que la lógica de predicados de primer orden no era adecuada para la gestión del razonamiento de sentido común, las inferencias retractables y para abordar en general los problemas planteados por la IA. Sus pioneros fueron John McCarthy (uno de los padres de la inteligencia artificial), Drew McDermott, Jon Doyle y Raymond Reiter.
La lógica no monótona se ha desarrollado principalmente en el ámbito de la IA, concretamente en el tema de la formalización del razonamiento de sentido común. Hoy día es considerada una parte esencial de la IA.
En 1980, el Artificial Intelligence Journal publicó un número monográfico (el número 13) sobre las teorías y los formalismos de la lógica no monotóna, evento que se considera el comienzo de la era de esta nueva lógica.
Los tres tipos de razonamiento
Según Peirce, hay tres tipos de razonamiento:
- Deductivo o descendente.
Se aplica la lógica clásica, la lógica monótona. A partir de premisas se obtienen conclusiones. Es puramente racional, del modo de conciencia del lado izquierdo del cerebro.
- Inductivo o ascendente.
A partir de varios hechos se infiere una conclusión general que explica todos los hechos. Es intuitivo, del modo de conciencia del lado derecho del cerebro.
- Abductivo.
Combina los dos anteriores. Se aplica la lógica no monótona. Se trata de explicar un hecho mediante una hipótesis explicativa. Peirce denominó al razonamiento abductivo “conjetura” (guessing).
La inducción se basa en la regularidad de los hechos. La abducción trabaja con el conocimiento de un hecho inesperado, infrecuente o anormal, cuya causa no se ha determinado aún, y que necesita una hipótesis explicativa.
El razonamiento abductivo es intuitivo y racional. Está, por lo tanto, asociado a la conciencia y a la creatividad. Trata de hacer inteligible la realidad mediante la formulación de hipótesis que intentan dar una explicación racional a un hecho o fenómeno. Este tipo de razonamiento es lo que hace posible el progreso de la ciencia. La conciencia se manifiesta o expresa en la regla que une los opuestos (la hipótesis y el hecho).
Bibliografía
- Antoniou, Grigoris. Nonmonotonic Reasonning. The MIT Press, 1997.
- Bidoit, N.; Hull, R. Minimalism, justification and non-monotonicity in deductive databases. Journal of Computer and System Sciences, 38: 290-325, 1989.
- Brewka, G. Nonmonotonic Reasoning: Logical Foundations of Commonsense. Cambridge University Press, 1991.
- Brewka, G.; Dix, J.; Konolige, K. Nonmonotonic Reasoning. An Overview. CSLI Publications, 1997.
- Burks, Arthur W. Peirce’s Theory of Abduction. Philosopphy of Science, 13: 301-306, 1946.
- Cadoli, M.; Schaerf. A survey of complexity results for non-monotonic logics. Journal of Logic Programming 17: 127-60, 1993.
- Colmerauer, Alain; Kanoui, Henry; Roussel, Philippe; Pasero, Robert. Un système de communication homme-machine en Français. Groupe de recherche en Intelligence Artificielle, Marseille, 1973.
- Gallaire, H.; Minker, J. (eds.). Logic and Databases. Plenum Press, 1978.
- Ginsberg, M.L. (ed.). Readings in Nonmonotonic Reasoning. Morgan Kaufmann, 1987.
- Harel, D. Dynamic Logic. In D. Gabbay and F. Guenthner, eds., Handbook of Philosophical Logic, vol. II: Extensions of Classical Logic, chapter 10. pp. 497-604. Reidel, 1984.
- Harel, D.; Kozen, D.; Tiuryn, J. Dynamic Logic. MIT Press, 2000.
- Horty, J. F. Nonmonotonic Logic. In Goble, Lou, ed., The Blackwell Guide to Philosophical Logic. Blackwell, 2001.
- Horty, J.F. Some direct theories of nonmonotonic inheritance. In D. M. Gabbay, C. J. Hogger, and J. A. Robinson, editors, Handbook of Logic in Artificial Intelligence and Logic Programming 3: Nonmonotonic Reasoning and Uncertain Reasoning. Oxford University Press, Oxford, 1994.
- Lukaszewicz, W. Non-Monotonic Reasoning. Ellis-Horwood, 1990.
- Marek, W.; Truszczynski, M. Nonmonotonic Logics: Context-Dependent Reasoning. Springer Verlag, 1993.
- McCarthy, John. Applications of Circumscription to formalizing Commonsense Knowledge. Artificial Intelligence, 28 (1); 89-116, 1986.
- McCarthy, J. Programs with common sense. In Proceedings of the Teddington Conference on the Mechanization of Thought Processes, pages 75-91, London, 1959.
- McCarthy, J. Circumscription. A form of non-monotonic reasoning. Artificial Intelligence, 13: 27-39, 1980.
- McCarthy, J. ; Hayes, P. Some philosophical problems from the standpoint of artificial intelligence. In B. Meltzer and D. Michie, editors, Machine Intelligence, pp. 463-502. Edinburg University Press, 1969.
- McCarthy, John. Programs with common sense. Symposium on Mechanization of Thought Processes. National Physical Laboratory, Teddington, England, 1958.
- McDermont, D; Doyle, J. Nonmonotonic logic I. Artificial intelligence, 25: 41-72, 1980.
- Moore, R.C. Semantical considerations on monotonic logic. Artificial Intelligence, 25: 75-94, 1985. Reimpreso en Ginsberg, 1987.
- Reiter, R. Nomonotonic reasoning. Annual Review in Computer Science 2: 147-186, 1987.
- Reiter, R. On closed world data bases. En H. Gallaire y J. Minker (eds.) Logic and Data Bases, 55-76. Plenum Press, 1978.
- Reiter, R. A logic for default reasoning. Artificial Intelligence, 13: 81-132, 1980. Reimpreso en Ginsberg, 1987.
- Rick, Elaine; Knight, Kevin. Inteligencia Artificial. McGraw-Hill, 1994. Capítulo 7: Razonamiento simbólico bajo incertidumbre.